﻿using System;
using System.Collections.Generic;

using System.Text;

namespace Sinacor.Tools.Entidade
{
    /// <summary>
    /// Classe que representa um idioma. Mapeamento com a tabela TFWIDIOMA
    /// </summary>
    [Serializable()]
    public class Idioma : Dominio<byte?>, IComparer<Idioma>
    {
        private string _sigla = string.Empty;
        
        private static string _propriedadeSort = string.Empty;
        public static string PropriedadeSort
        {
            set { _propriedadeSort = value; }
        }


        public string Sigla
        {
            get { return this._sigla; }
            set { this._sigla = value; }
        }

        #region IComparer<Idioma> Members

        public int Compare(Idioma x, Idioma y)
        {
            int resultado = 0;
            switch (_propriedadeSort.ToLower())
            {
                case "descricao":
                    resultado = x.Descricao.CompareTo(y.Descricao);
                    break;

                case "sigla":
                    resultado = x._sigla.CompareTo(y._sigla);
                    break;

                //o id sempre existirá no sort
                default:
                    resultado = x.Id.Value.CompareTo(y.Id.Value);
                    break;
            }
            return resultado;            
        }

        #endregion
    }
}
